home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #2 / Monster Media No. 2 (Monster Media)(1994).ISO / pcboard / edsb121b.zip / EDSFILE.010 (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-05-01  |  28KB  |  1,518 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Boolean  BOOLEAN006
  25.     Integer  INTEGER001
  26.     Integer  INTEGER002
  27.     Integer  INTEGER003
  28.     Integer  INTEGER004
  29.     Integer  INTEGER005
  30.     Integer  INTEGER006
  31.     Real     REAL001
  32.     Real     REAL002
  33.     Real     REAL003
  34.     String   STRING001
  35.     String   STRING002
  36.     String   STRING003
  37.     String   STRING004
  38.     String   STRING005
  39.     String   STRING006
  40.     String   STRING007
  41.     Byte     BYTE001
  42.     Byte     TBYTE002(5)
  43.     Byte     BYTE003
  44.     Byte     BYTE004
  45.     Byte     BYTE005
  46.     Byte     BYTE006
  47.     Byte     BYTE007
  48.     Word     WORD001
  49.  
  50. ;------------------------------------------------------------------------------
  51.  
  52.     If (TokCount() <> 1) Then
  53.         PrintLn 
  54.         PrintLn "@X0CEUTMOD8 FATAL ERROR: INVALID COMMAND SEQUENCE!"
  55.         PrintLn 
  56.         PrintLn "@X0AEUTMOD8 may only be ran from within EDSUtil!"
  57.         PrintLn 
  58.         Goto LABEL034
  59.     Else
  60.         GetToken STRING001
  61.         Select Case (STRING001)
  62.             Case "1"
  63.                 Gosub LABEL028
  64.                 FSeek 2, 359, 0
  65.                 FRead 2, STRING002, 75
  66.                 FClose 2
  67.                 Gosub LABEL007
  68.                 Goto LABEL034
  69.             Case "2"
  70.                 Gosub LABEL028
  71.                 FSeek 2, 359, 0
  72.                 FRead 2, STRING002, 75
  73.                 FClose 2
  74.                 Gosub LABEL011
  75.                 Goto LABEL034
  76.             Case "3"
  77.                 Gosub LABEL028
  78.                 FSeek 2, 359, 0
  79.                 FRead 2, STRING002, 75
  80.                 FClose 2
  81.                 Gosub LABEL003
  82.                 Goto LABEL034
  83.             Case "4"
  84.                 Gosub LABEL028
  85.                 FSeek 2, 359, 0
  86.                 FRead 2, STRING002, 75
  87.                 FClose 2
  88.                 Gosub LABEL001
  89.                 Goto LABEL034
  90.             Case "5"
  91.                 Gosub LABEL025
  92.                 Goto LABEL034
  93.             Case "6"
  94.                 Gosub LABEL017
  95.                 Goto LABEL034
  96.             Case "7"
  97.                 Gosub LABEL021
  98.                 Goto LABEL034
  99.             Case Else
  100.                 PrintLn 
  101.                 PrintLn "@X0CEUTMOD8 FATAL ERROR: INVALID COMMAND SEQUENCE!"
  102.                 PrintLn 
  103.                 PrintLn "@X0AEUTMOD8 may only be ran from within EDSUtil!"
  104.                 PrintLn 
  105.                 Goto LABEL034
  106.             Endif
  107.     End Select
  108.     :LABEL001
  109.     STRING005 = PPEPath() + "EDSALLOW.XPT"
  110.     STRING006 = PPEPath() + "EXPORT.RPT"
  111.     InputStr "Path & Filename to export to", STRING005, 15, 45, Mask_Path() + Mask_File(), 2 + 4 + 256
  112.     STRING005 = Strip(Upper(STRING005), " ")
  113.     If (STRING005 == "") Goto LABEL034
  114.     InputStr "Path & Filename for report file", STRING006, 15, 45, Mask_Path() + Mask_File(), 2 + 4 + 256
  115.     STRING006 = Strip(Upper(STRING006), " ")
  116.     If (STRING006 == "") Goto LABEL034
  117.     STRING002 = Trim(Upper(STRING002), " ")
  118.     If (Exist(STRING002)) Goto LABEL002
  119.     PrintLn 
  120.     PrintLn "@X0C" + STRING002 + " does not exist!"
  121.     PrintLn 
  122.     Delay 4
  123.     Goto LABEL034
  124.     :LABEL002
  125.     INTEGER003 = FileInf(STRING002, 4)
  126.     INTEGER002 = (INTEGER003 - 41) / 29
  127.     If (Exist(STRING005)) Then
  128.         FAppend 1, STRING005, 1, 2
  129.         If (Ferr(1)) Then
  130.             BOOLEAN003 = 1
  131.         Else
  132.             BOOLEAN003 = 0
  133.         Endif
  134.         If (BOOLEAN003) Then
  135.             PrintLn 
  136.             PrintLn "@X0CSorry, the @X0F" + STRING005 + " @X0Cfile is currently inaccessible..."
  137.             FClose 1
  138.             Return
  139.         Endif
  140.     Else
  141.         FCreate 1, STRING005, 1, 2
  142.         If (Ferr(1)) Then
  143.             BOOLEAN003 = 1
  144.         Else
  145.             BOOLEAN003 = 0
  146.         Endif
  147.         If (BOOLEAN003) Then
  148.             PrintLn 
  149.             PrintLn "@X0CSorry, the @X0F" + STRING005 + " @X0Cfile is currently inaccessible..."
  150.             FClose 1
  151.             Return
  152.         Endif
  153.     Endif
  154.     FOpen 2, STRING002, 0, 0
  155.     If (Ferr(2)) Then
  156.         BOOLEAN003 = 1
  157.     Else
  158.         BOOLEAN003 = 0
  159.     Endif
  160.     If (BOOLEAN003) Then
  161.         PrintLn 
  162.         PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  163.         FClose 1
  164.         FClose 2
  165.         Return
  166.     Endif
  167.     If (Exist(STRING006)) Then
  168.         FAppend 3, STRING006, 1, 2
  169.         If (Ferr(3)) Then
  170.             BOOLEAN003 = 1
  171.         Else
  172.             BOOLEAN003 = 0
  173.         Endif
  174.         If (BOOLEAN003) Then
  175.             PrintLn 
  176.             PrintLn "@X0CSorry, the @X0F" + STRING006 + " @X0Cfile is currently inaccessible..."
  177.             FClose 1
  178.             FClose 2
  179.             FClose 3
  180.             Return
  181.         Endif
  182.     Else
  183.         FCreate 3, STRING006, 1, 2
  184.         If (Ferr(3)) Then
  185.             BOOLEAN003 = 1
  186.         Else
  187.             BOOLEAN003 = 0
  188.         Endif
  189.         If (BOOLEAN003) Then
  190.             PrintLn 
  191.             PrintLn "@X0CSorry, the @X0F" + STRING006 + " @X0Cfile is currently inaccessible..."
  192.             FClose 1
  193.             FClose 2
  194.             FClose 3
  195.             Return
  196.         Endif
  197.         FPutLn 3, "EDSBack 1.21b Allowed # Calling Exportation Report"
  198.         FPutLn 3, "Report generated at " + String(Time()) + " on " + String(Date())
  199.         FPutLn 3, "----------------------------------------------------------------------"
  200.         FPutLn 3
  201.     Endif
  202.     INTEGER001 = 1
  203.     Cls
  204.     PrintLn 
  205.     PrintLn Space(17) + "@X0A(@X0FAllowed # Calling File Exportation Procedure@X0A)"
  206.     PrintLn 
  207.     PrintLn 
  208.     PrintLn "@X0BFrom   :@X0E " + STRING002
  209.     PrintLn "@X0BTo     :@X0E " + STRING005
  210.     PrintLn "@X0BReport :@X0E " + STRING006
  211.     PrintLn 
  212.     Print "@X0CPlease wait, now exporting...@X0F    "
  213.     FSeek 2, 41, 0
  214.     While (INTEGER001 <= INTEGER002) Do
  215.         FSeek 2, 1, 1
  216.         FRead 2, BOOLEAN005, 1
  217.         FRead 2, STRING003, 3
  218.         STRING003 = Strip(STRING003, " ")
  219.         FRead 2, STRING004, 4
  220.         STRING004 = Strip(STRING004, " ")
  221.         FSeek 2, 20, 1
  222.         If (BOOLEAN005) Then
  223.             FPutLn 3, "--------------------------------------------------------------------------"
  224.             FPutLn 3, "Record #" + String(INTEGER001) + " not exported because it is an international number..."
  225.             FPutLn 3, "CountryCode = " + STRING003
  226.             FPutLn 3, "CityCode    = " + STRING004
  227.         Else
  228.             FPutLn 1, STRING003 + "-" + Left(STRING004 + Space(3), 3)
  229.         Endif
  230.         Gosub LABEL032
  231.         Inc INTEGER001
  232.     EndWhile
  233.     FClose 1
  234.     FClose 2
  235.     FClose 3
  236.     PrintLn 
  237.     PrintLn "@X0BExporting process completed!"
  238.     Log "Allowed # calling file exported...", 0
  239.     Delay 4
  240.     Return
  241.     :LABEL003
  242.     PrintLn 
  243.     STRING005 = ""
  244.     InputStr "Path & Filename to import", STRING005, 15, 50, Mask_Path() + Mask_File(), 2 + 4
  245.     STRING005 = Strip(Upper(STRING005), " ")
  246.     If (STRING005 == "") Goto LABEL034
  247.     Newline
  248.     If (Exist(STRING005)) Goto LABEL004
  249.     PrintLn 
  250.     PrintLn "@X0C" + STRING005 + " does not exist!"
  251.     Delay 9
  252.     Return
  253.     :LABEL004
  254.     InputText "Name of template file to use for all imported numbers", STRING007, 15, 10
  255.     STRING007 = Trim(Upper(STRING007), " ")
  256.     Newline
  257.     FOpen 1, STRING005, 0, 0
  258.     If (Ferr(1)) Then
  259.         BOOLEAN003 = 1
  260.     Else
  261.         BOOLEAN003 = 0
  262.     Endif
  263.     If (BOOLEAN003) Then
  264.         PrintLn 
  265.         PrintLn "@X0CSorry, the @X0F" + STRING005 + " @X0Cfile is currently inaccessible..."
  266.         FClose 1
  267.         Return
  268.     Endif
  269.     If (Exist(STRING002)) Then
  270.         FOpen 2, STRING002, 1, 2
  271.         If (Ferr(2)) Then
  272.             BOOLEAN003 = 1
  273.         Else
  274.             BOOLEAN003 = 0
  275.         Endif
  276.         If (BOOLEAN003) Then
  277.             PrintLn 
  278.             PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  279.             FClose 1
  280.             FClose 2
  281.             Return
  282.         Endif
  283.         FSeek 2, 0, 2
  284.     Else
  285.         FCreate 2, STRING002, 1, 2
  286.         If (Ferr(2)) Then
  287.             BOOLEAN003 = 1
  288.         Else
  289.             BOOLEAN003 = 0
  290.         Endif
  291.         If (BOOLEAN003) Then
  292.             PrintLn 
  293.             PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  294.             FClose 1
  295.             FClose 2
  296.             Return
  297.         Endif
  298.         FWrite 2, " EDSBack 1.21 Allowed # Calling File" + Chr(13) + Chr(32) + Chr(10) + Chr(26), 41
  299.     Endif
  300.     Cls
  301.     PrintLn 
  302.     PrintLn Space(19) + "@X0A(@X0FAllowed Numbers Calling List Importation@X0A)"
  303.     PrintLn 
  304.     PrintLn "@X0BFrom     :@X0E " + STRING005
  305.     PrintLn "@X0BTo       :@X0E " + STRING002
  306.     PrintLn "@X0BTemplate :@X0E " + STRING007
  307.     PrintLn 
  308.     PrintLn 
  309.     Print "@X0FWriting record #@X0A1"
  310.     INTEGER004 = 1
  311.     INTEGER001 = 1
  312.     :LABEL005
  313.     If (Ferr(1)) Goto LABEL006
  314.     Backup Len(INTEGER001)
  315.     Print String(INTEGER004)
  316.     FGet 1, STRING001
  317.     STRING001 = Strip(Strip(Strip(Strip(Strip(STRING001, " "), ")"), "("), "-"), ".")
  318.     If (STRING001 <> "") Then
  319.         FWrite 2, 0, 1
  320.         FWrite 2, 0, 1
  321.         FWrite 2, Mid(STRING001, 1, 3), 3
  322.         FWrite 2, Mid(STRING001, 4, 3) + Space(1), 4
  323.         FWrite 2, STRING007, 10
  324.         FWrite 2, Space(10), 10
  325.         INTEGER001 = INTEGER004
  326.         Inc INTEGER004
  327.     Endif
  328.     Goto LABEL005
  329.     :LABEL006
  330.     FClose 1
  331.     FClose 2
  332.     PrintLn 
  333.     PrintLn "@X0AFile successfully imported!"
  334.     PrintLn 
  335.     Gosub LABEL025
  336.     Return
  337.     :LABEL007
  338.     If (Exist(STRING002)) Goto LABEL008
  339.     PrintLn 
  340.     PrintLn "@X0C" + STRING002 + " does not exist!"
  341.     Delay 9
  342.     Return
  343.     :LABEL008
  344.     INTEGER003 = FileInf(STRING002, 4)
  345.     INTEGER002 = (INTEGER003 - 41) / 29
  346.     Cls
  347.     PrintLn 
  348.     PrintLn Space(24) + "@X0A(@X0FPacking Allowed # Calling File@X0A)"
  349.     PrintLn 
  350.     PrintLn 
  351.     PrintLn "@X0F   File Size = " + String(INTEGER003) + " bytes   Number of Records = " + String(INTEGER002)
  352.     If (INTEGER002 <= 1) Then
  353.         PrintLn 
  354.         PrintLn "@X0CTHERE MUST BE AT LEAST ONE RECORD PRESENT IN THE VALID CALLING FILE!"
  355.         PrintLn 
  356.         Delay 18
  357.         Return
  358.     Endif
  359.     KbdChkOff
  360.     Rename STRING002, PPEPath() + String(PcbNode()) + "tc.$$$"
  361.     FCreate 1, STRING002, 1, 2
  362.     If (Ferr(1)) Then
  363.         BOOLEAN003 = 1
  364.     Else
  365.         BOOLEAN003 = 0
  366.     Endif
  367.     If (BOOLEAN003) Then
  368.         PrintLn 
  369.         PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  370.         FClose 1
  371.         Return
  372.     Endif
  373.     FOpen 2, PPEPath() + String(PcbNode()) + "tc.$$$", 0, 3
  374.     If (Ferr(2)) Then
  375.         BOOLEAN003 = 1
  376.     Else
  377.         BOOLEAN003 = 0
  378.     Endif
  379.     If (BOOLEAN003) Then
  380.         PrintLn 
  381.         PrintLn "@X0CSorry, the @X0F" + String(PcbNode()) + "tc.$$$ @X0Cfile is currently inaccessible..."
  382.         FClose 2
  383.         FClose 1
  384.         PrintLn 
  385.         PrintLn "@X0ADeleting & renaming temporary files..."
  386.         Delete STRING002
  387.         Rename PPEPath() + String(PcbNode()) + "tc.$$$", STRING002
  388.         Return
  389.     Endif
  390.     BOOLEAN002 = 0
  391.     FSeek 1, 0, 0
  392.     FWrite 1, " EDSBack 1.21 Allowed # Calling File" + Chr(13) + Chr(32) + Chr(10) + Chr(26), 41
  393.     PrintLn 
  394.     Print "@X0BPacking Allowed # Calling File...     "
  395.     If (OnLocal()) Then
  396.         PrintLn 
  397.         PrintLn 
  398.         Print "@X0F0% @X07░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ @X0F100%"
  399.         BYTE001 = GetY()
  400.     Endif
  401.     INTEGER001 = 1
  402.     FSeek 2, 41, 0
  403.     While (INTEGER001 <= INTEGER002) Do
  404.         BOOLEAN002 = 0
  405.         BOOLEAN004 = 0
  406.         BOOLEAN005 = 0
  407.         STRING003 = Space(3)
  408.         STRING004 = Space(4)
  409.         STRING007 = Space(10)
  410.         FRead 2, BOOLEAN004, 1
  411.         If (BOOLEAN004) Then
  412.             BOOLEAN002 = 1
  413.         Else
  414.             BOOLEAN002 = 0
  415.         Endif
  416.         If (BOOLEAN002) Goto LABEL009
  417.         FWrite 1, BOOLEAN004, 1
  418.         FRead 2, BOOLEAN005, 1
  419.         FWrite 1, BOOLEAN005, 1
  420.         FRead 2, STRING003, 3
  421.         FWrite 1, STRING003, 3
  422.         FRead 2, STRING004, 4
  423.         FWrite 1, STRING004, 4
  424.         FRead 2, STRING007, 10
  425.         FWrite 1, STRING007, 10
  426.         FSeek 2, 10, 1
  427.         FWrite 1, Space(10), 10
  428.         Goto LABEL010
  429.         :LABEL009
  430.         FSeek 2, 28, 1
  431.         :LABEL010
  432.         If (OnLocal()) Then
  433.             Gosub LABEL031
  434.         Else
  435.             Gosub LABEL032
  436.         Endif
  437.         Inc INTEGER001
  438.     EndWhile
  439.     Color 7
  440.     FClose 1
  441.     FClose 2
  442.     PrintLn 
  443.     PrintLn 
  444.     PrintLn "@X0BDeleting temporary files..."
  445.     Delete PPEPath() + String(PcbNode()) + "tc.$$$"
  446.     PrintLn "@X0EChecking files..."
  447.     INTEGER003 = FileInf(STRING002, 4)
  448.     INTEGER002 = (INTEGER003 - 41) / 29
  449.     If (INTEGER002 < 1) Then
  450.         PrintLn 
  451.         PrintLn "@X0C0 byte file!  Recreating with a dummy record..."
  452.         FCreate 1, STRING002, 1, 2
  453.         FWrite 1, " EDSBack 1.21 Allowed # Calling File" + Chr(13) + Chr(32) + Chr(10) + Chr(26), 41
  454.         FWrite 1, 0, 1
  455.         FWrite 1, 0, 1
  456.         FWrite 1, "000", 3
  457.         FWrite 1, "000", 4
  458.         FWrite 1, "SAMPLE", 10
  459.         FWrite 1, Space(10), 10
  460.         FClose 1
  461.         PrintLn "@X0ANew allowed # calling file successfully created..."
  462.     Endif
  463.     PrintLn "@X0FAllowed # calling file successfully packed!"
  464.     Log "Allowed # calling file successfully packed!", 0
  465.     PrintLn 
  466.     Gosub LABEL025
  467.     KbdChkOn
  468.     Return
  469.     :LABEL011
  470.     BOOLEAN002 = 0
  471.     BOOLEAN001 = 1
  472.     INTEGER001 = 1
  473.     INTEGER003 = FileInf(STRING002, 4)
  474.     If (Exist(PPEPath() + "TRASH.IDX")) Goto LABEL012
  475.     Cls
  476.     PrintLn 
  477.     PrintLn Space(29) + "@X0F(@X0ABuilding Index File@X0F)"
  478.     PrintLn 
  479.     Gosub LABEL025
  480.     :LABEL012
  481.     If (Exist(STRING002)) Goto LABEL013
  482.     PrintLn 
  483.     PrintLn "@X0CCreating " + STRING002
  484.     FCreate 1, STRING002, 2, 2
  485.     If (Ferr(1)) Then
  486.         BOOLEAN003 = 1
  487.     Else
  488.         BOOLEAN003 = 0
  489.     Endif
  490.     If (BOOLEAN003) Then
  491.         PrintLn 
  492.         PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  493.         FClose 1
  494.         Return
  495.     Endif
  496.     FSeek 1, 0, 0
  497.     FWrite 1, " EDSBack 1.21 Allowed # Calling File" + Chr(13) + Chr(32) + Chr(10) + Chr(26), 41
  498.     FWrite 1, 0, 1
  499.     FWrite 1, 0, 1
  500.     FWrite 1, "000", 3
  501.     FWrite 1, "000", 4
  502.     FWrite 1, "SAMPLE", 10
  503.     FWrite 1, Space(10), 10
  504.     INTEGER003 = 70
  505.     Goto LABEL014
  506.     :LABEL013
  507.     FOpen 1, STRING002, 2, 2
  508.     If (Ferr(1)) Then
  509.         BOOLEAN003 = 1
  510.     Else
  511.         BOOLEAN003 = 0
  512.     Endif
  513.     If (BOOLEAN003) Then
  514.         PrintLn 
  515.         PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  516.         FClose 1
  517.         Return
  518.     Endif
  519.     :LABEL014
  520.     FOpen 2, PPEPath() + "EDSALLOW.IDX", 2, 2
  521.     If (Ferr(2)) Then
  522.         BOOLEAN003 = 1
  523.     Else
  524.         BOOLEAN003 = 0
  525.     Endif
  526.     If (BOOLEAN003) Then
  527.         PrintLn 
  528.         PrintLn "@X0CSorry, the @X0FEDSALLOW.IDX @X0Cfile is currently inaccessible..."
  529.         FClose 2
  530.         Return
  531.     Endif
  532.     INTEGER002 = (INTEGER003 - 41) / 29
  533.     :LABEL015
  534.     If (BOOLEAN002) Goto LABEL016
  535.     If (BOOLEAN001) Then
  536.         FSeek 1, 41 + INTEGER001 * 29 - 29, 0
  537.         FRead 1, BOOLEAN004, 1
  538.         FRead 1, BOOLEAN005, 1
  539.         FRead 1, STRING003, 3
  540.         FRead 1, STRING004, 4
  541.         FRead 1, STRING007, 10
  542.         STRING004 = Strip(STRING004, " ")
  543.         STRING003 = Strip(STRING003, " ")
  544.         STRING007 = Trim(STRING007, " ")
  545.         BOOLEAN001 = 0
  546.     Endif
  547.     PrintLn 
  548.     PrintLn Space(23) + "@X0A(@X0FAllowed Calling Numbers Listing@X0A)"
  549.     PrintLn 
  550.     PrintLn "    @X0BRecord #@X0E" + String(INTEGER001) + "@X0B of @X0E" + String(INTEGER002)
  551.     Print "    @X0F(@X09D@X0F)eleted : @X0C"
  552.     If (BOOLEAN004) Then
  553.         PrintLn "Yes"
  554.     Else
  555.         PrintLn "No "
  556.     Endif
  557.     PrintLn 
  558.     Print "    @X0F(@X09I@X0F)nternational                : @X0C"
  559.     If (BOOLEAN005) Then
  560.         PrintLn "Yes"
  561.     Else
  562.         PrintLn "No "
  563.     Endif
  564.     PrintLn "    @X0FArea(@X09C@X0F)ode/CountryCode         : @X0C" + STRING003
  565.     PrintLn "    @X0F(@X09P@X0F)refix/City Code             : @X0C" + STRING004
  566.     PrintLn "    @X0FDialing (@X09T@X0F)emplate name        : @X0C" + STRING007
  567.     PrintLn 
  568.     PrintLn "    @X0F(@X09+@X0F) @X0BAdvance 1 record  @X0F(@X09-@X0F) @X0BRetard 1 record"
  569.     PrintLn "    @X0F(@X09J@X0F)@X0Bump to record      @X0F(@X09A@X0F)@X0Bdd a record"
  570.     PrintLn "    @X0F(@X09Q@X0F)@X0Buit                @X0BEdit Temp@X0F(@X09L@X0F)@X0Bates"
  571.     PrintLn 
  572.     InputStr "(H)elp, Enter command", STRING005, 10, 1, "DdCcPp+-JjAaQqRrIiLlTtHh", 2 + 4
  573.     Newline
  574.     STRING005 = Upper(STRING005)
  575.     Select Case (STRING005)
  576.         Case "Q", "R"
  577.             FClose 1
  578.             FClose 2
  579.             BOOLEAN002 = 1
  580.         Case "H"
  581.             Print "@PON@"
  582.             DispFile PPEPath() + "EDSAE", 1 + 4
  583.             Print "@POFF@"
  584.             Cls
  585.         Case "+"
  586.             If (INTEGER001 >= INTEGER002) Then
  587.                 INTEGER001 = 1
  588.             Else
  589.                 Inc INTEGER001
  590.             Endif
  591.             BOOLEAN001 = 1
  592.         Case "-"
  593.             If (INTEGER001 <= 1) Then
  594.                 INTEGER001 = INTEGER002
  595.             Else
  596.                 Dec INTEGER001
  597.             Endif
  598.             BOOLEAN001 = 1
  599.         Case "J"
  600.             INTEGER004 = INTEGER002
  601.             InputInt "Enter record # to jump to", INTEGER004, 10
  602.             If (INTEGER004 > INTEGER002) Then
  603.                 INTEGER001 = INTEGER002
  604.             ElseIf (INTEGER004 < 1) Then
  605.                 INTEGER001 = 1
  606.             Else
  607.                 INTEGER001 = INTEGER004
  608.             Endif
  609.             BOOLEAN001 = 1
  610.         Case "D"
  611.             FSeek 1, 41 + INTEGER001 * 29 - 29, 0
  612.             If (BOOLEAN004) Then
  613.                 FWrite 1, 0, 1
  614.             Else
  615.                 FWrite 1, 1, 1
  616.             Endif
  617.             BOOLEAN001 = 1
  618.         Case "A"
  619.             FSeek 1, 0, 2
  620.             FSeek 2, 0, 2
  621.             If (BOOLEAN005) Then
  622.                 STRING001 = YesChar()
  623.             Else
  624.                 STRING001 = NoChar()
  625.             Endif
  626.             InputYN "International (CountryCode & CityCode)", STRING001, 10
  627.             Newline
  628.             If (Upper(STRING001) == YesChar()) Then
  629.                 BOOLEAN005 = 1
  630.             Else
  631.                 BOOLEAN005 = 0
  632.             Endif
  633.             If (BOOLEAN005) Then
  634.                 PrintLn "@X0C(XXX = Wildcard)"
  635.                 InputStr "Country code", STRING003, 10, 3, Mask_Num() + "xX", 2 + 4
  636.                 Newline
  637.                 PrintLn "@X0C(XXXX = Wildcard)"
  638.                 InputStr "City code", STRING004, 10, 4, Mask_Num() + "xX", 2 + 4
  639.             Else
  640.                 PrintLn "@X0C(XXX = Wildcard)"
  641.                 InputStr "Area code", STRING003, 10, 3, Mask_Num() + "xX", 2 + 4
  642.                 Newline
  643.                 PrintLn "@X0C(XXX = Wildcard)"
  644.                 InputStr "Prefix", STRING004, 10, 3, Mask_Num() + "xX", 2 + 4
  645.             Endif
  646.             STRING003 = Upper(Strip(STRING003, " "))
  647.             STRING004 = Upper(Strip(STRING004, " "))
  648.             If (InStr(STRING003 + STRING004, "X") == 0) Then
  649.                 INTEGER004 = S2I(STRING003, 10) + S2I(STRING004, 10)
  650.             Else
  651.                 INTEGER004 = 0
  652.             Endif
  653.             Newline
  654.             InputText "Name of dialing template to use", STRING007, 10, 10
  655.             Newline
  656.             STRING007 = Trim(Upper(STRING007), " ")
  657.             PrintLn "@X0FCreating record..."
  658.             FWrite 1, 0, 1
  659.             FWrite 1, BOOLEAN005, 1
  660.             FWrite 1, STRING003, 3
  661.             FWrite 1, STRING004, 4
  662.             FWrite 1, STRING007, 10
  663.             FWrite 1, Space(10), 10
  664.             PrintLn "@X0FUpdating index..."
  665.             INTEGER002 = INTEGER002 + 1
  666.             INTEGER001 = INTEGER002
  667.             FWrite 2, INTEGER004, 4
  668.             FWrite 2, INTEGER001, 4
  669.             BOOLEAN001 = 1
  670.         Case "C"
  671.             If (BOOLEAN005) Then
  672.                 PrintLn "@X0C(XXX = Wildcard)"
  673.                 InputStr "New country code", STRING003, 12, 3, Mask_Num() + "xX", 2 + 4 + 256
  674.             Else
  675.                 PrintLn "@X0C(XXX = Wildcard)"
  676.                 InputStr "New areacode", STRING003, 12, 3, Mask_Num() + "xX", 2 + 4 + 256
  677.             Endif
  678.             Newline
  679.             STRING003 = Upper(Strip(STRING003, " "))
  680.             If (InStr(STRING003 + STRING004, "X") == 0) Then
  681.                 INTEGER004 = S2I(STRING003, 10) + S2I(STRING004, 10)
  682.             Else
  683.                 INTEGER004 = 0
  684.             Endif
  685.             FSeek 1, 41 + INTEGER001 * 29 - 27, 0
  686.             FWrite 1, STRING003, 3
  687.             PrintLn "@X0FUpdating index..."
  688.             FSeek 2, 41 + INTEGER001 * 8 - 8, 0
  689.             FWrite 2, INTEGER004, 4
  690.             BOOLEAN001 = 1
  691.         Case "P"
  692.             If (BOOLEAN005) Then
  693.                 PrintLn "@X0C(XXXX = Wildcard)"
  694.                 InputStr "New city code", STRING004, 12, 4, Mask_Num() + "xX", 2 + 4 + 256
  695.             Else
  696.                 PrintLn "@X0C(XXX = Wildcard)"
  697.                 STRING004 = Mid(STRING004, 1, 3)
  698.                 InputStr "New prefix", STRING004, 12, 3, Mask_Num() + "xX", 2 + 4 + 256
  699.             Endif
  700.             Newline
  701.             STRING004 = Upper(Strip(STRING004, " "))
  702.             If (InStr(STRING003 + STRING004, "X") == 0) Then
  703.                 INTEGER004 = S2I(STRING003, 10) + S2I(STRING004, 10)
  704.             Else
  705.                 INTEGER004 = 0
  706.             Endif
  707.             FSeek 1, 41 + INTEGER001 * 29 - 24, 0
  708.             FWrite 1, STRING004, 4
  709.             PrintLn "@X0FUpdating index..."
  710.             FSeek 2, 41 + INTEGER001 * 8 - 8, 0
  711.             FWrite 2, INTEGER004, 4
  712.             BOOLEAN001 = 1
  713.         Case "I"
  714.             If (BOOLEAN005) Then
  715.                 STRING001 = NoChar()
  716.             Else
  717.                 STRING001 = YesChar()
  718.             Endif
  719.             InputYN "International (CountryCode & CityCode)", STRING001, 10
  720.             Newline
  721.             If (Upper(STRING001) == YesChar()) Then
  722.                 BOOLEAN005 = 1
  723.             Else
  724.                 BOOLEAN005 = 0
  725.             Endif
  726.             FSeek 1, 41 + INTEGER001 * 29 - 28, 0
  727.             FWrite 1, BOOLEAN005, 1
  728.             BOOLEAN001 = 1
  729.         Case "T"
  730.             InputText "Name of dialing template to use", STRING007, 10, 10
  731.             Newline
  732.             STRING007 = Trim(Upper(STRING007), " ")
  733.             FSeek 1, 41 + INTEGER001 * 29 - 20, 0
  734.             FWrite 1, STRING007, 10
  735.             BOOLEAN001 = 1
  736.         Case "L"
  737.             PrintLn 
  738.             INTEGER005 = INTEGER001
  739.             INTEGER006 = INTEGER002
  740.             STRING005 = ""
  741.             Gosub LABEL021
  742.             STRING005 = ""
  743.             INTEGER001 = INTEGER005
  744.             INTEGER002 = INTEGER006
  745.             BOOLEAN001 = 1
  746.             BOOLEAN002 = 0
  747.     End Select
  748.     Goto LABEL015
  749.     :LABEL016
  750.     FClose 1
  751.     FClose 2
  752.     STRING005 = YesChar()
  753.     PrintLn 
  754.     InputYN "Regenerate index file", STRING005, 12
  755.     Newline
  756.     If (Upper(STRING005) == YesChar()) Gosub LABEL025
  757.     Return
  758.     :LABEL017
  759.     STRING002 = PPEPath() + "EDSDIAL.PLT"
  760.     If (Exist(STRING002)) Goto LABEL018
  761.     PrintLn 
  762.     PrintLn "@X0C" + STRING002 + " does not exist!"
  763.     Delay 9
  764.     Return
  765.     :LABEL018
  766.     INTEGER003 = FileInf(STRING002, 4)
  767.     INTEGER002 = (INTEGER003 - 41) / 28
  768.     Cls
  769.     PrintLn 
  770.     PrintLn Space(22) + "@X0A(@X0FDialing Template Packing Procedure@X0A)"
  771.     PrintLn 
  772.     PrintLn 
  773.     PrintLn "@X0F   File Size = " + String(INTEGER003) + " bytes   Number of Records = " + String(INTEGER002)
  774.     If (INTEGER002 <= 1) Then
  775.         PrintLn 
  776.         PrintLn "@X0CTHERE MUST BE AT LEAST ONE RECORD PRESENT IN THE DIALING TEMPLATE FILE!"
  777.         PrintLn 
  778.         Delay 18
  779.         Return
  780.     Endif
  781.     KbdChkOff
  782.     Rename STRING002, PPEPath() + String(PcbNode()) + "tc.$$$"
  783.     FCreate 1, STRING002, 1, 2
  784.     If (Ferr(1)) Then
  785.         BOOLEAN003 = 1
  786.     Else
  787.         BOOLEAN003 = 0
  788.     Endif
  789.     If (BOOLEAN003) Then
  790.         PrintLn 
  791.         PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  792.         FClose 1
  793.         Return
  794.     Endif
  795.     FOpen 2, PPEPath() + String(PcbNode()) + "tc.$$$", 0, 3
  796.     If (Ferr(2)) Then
  797.         BOOLEAN003 = 1
  798.     Else
  799.         BOOLEAN003 = 0
  800.     Endif
  801.     If (BOOLEAN003) Then
  802.         PrintLn 
  803.         PrintLn "@X0CSorry, the @X0F" + String(PcbNode()) + "tc.$$$ @X0Cfile is currently inaccessible..."
  804.         FClose 2
  805.         FClose 1
  806.         PrintLn 
  807.         PrintLn "@X0ADeleting & renaming temporary files..."
  808.         Delete STRING002
  809.         Rename PPEPath() + String(PcbNode()) + "tc.$$$", STRING002
  810.         Return
  811.     Endif
  812.     BOOLEAN002 = 0
  813.     FSeek 1, 0, 0
  814.     FWrite 1, " EDSBack 1.21 Dialing Templates    " + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 41
  815.     PrintLn 
  816.     Print "@X0BPacking Dialing Templates...     "
  817.     If (OnLocal()) Then
  818.         PrintLn 
  819.         PrintLn 
  820.         Print "@X0F0% @X07░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ @X0F100%"
  821.         BYTE001 = GetY()
  822.     Endif
  823.     INTEGER001 = 1
  824.     FSeek 2, 41, 0
  825.     While (INTEGER001 <= INTEGER002) Do
  826.         BOOLEAN002 = 0
  827.         BOOLEAN004 = 0
  828.         BOOLEAN006 = 0
  829.         For INTEGER004 = 0 To 5
  830.             TBYTE002(INTEGER004) = 0
  831.         Next
  832.         STRING007 = Space(10)
  833.         BYTE003 = 0
  834.         BYTE004 = 0
  835.         WORD001 = 0
  836.         FRead 2, BOOLEAN004, 1
  837.         If (BOOLEAN004) Then
  838.             BOOLEAN002 = 1
  839.         Else
  840.             BOOLEAN002 = 0
  841.         Endif
  842.         If (BOOLEAN002) Goto LABEL019
  843.         FWrite 1, BOOLEAN004, 1
  844.         FRead 2, BOOLEAN006, 1
  845.         FWrite 1, BOOLEAN006, 1
  846.         For INTEGER004 = 0 To 5
  847.             FRead 2, TBYTE002(INTEGER004), 1
  848.             FWrite 1, TBYTE002(INTEGER004), 1
  849.         Next
  850.         FRead 2, STRING007, 10
  851.         FWrite 1, STRING007, 10
  852.         FRead 2, BYTE003, 1
  853.         FRead 2, BYTE004, 1
  854.         FRead 2, WORD001, 2
  855.         FWrite 1, BYTE003, 1
  856.         FWrite 1, BYTE004, 1
  857.         FWrite 1, WORD001, 2
  858.         FSeek 2, 6, 1
  859.         FWrite 1, Space(6), 6
  860.         Goto LABEL020
  861.         :LABEL019
  862.         FSeek 2, 27, 1
  863.         :LABEL020
  864.         If (OnLocal()) Then
  865.             Gosub LABEL031
  866.         Else
  867.             Gosub LABEL032
  868.         Endif
  869.         Inc INTEGER001
  870.     EndWhile
  871.     Color 7
  872.     FClose 1
  873.     FClose 2
  874.     PrintLn 
  875.     PrintLn 
  876.     PrintLn "@X0BDeleting temporary files..."
  877.     Delete PPEPath() + String(PcbNode()) + "tc.$$$"
  878.     PrintLn "@X0EChecking files..."
  879.     INTEGER003 = FileInf(STRING002, 4)
  880.     INTEGER002 = (INTEGER003 - 41) / 28
  881.     If (INTEGER002 < 1) Then
  882.         PrintLn 
  883.         PrintLn "@X0C0 byte file!  Recreating with a dummy record..."
  884.         FCreate 1, STRING002, 1, 2
  885.         FWrite 1, " EDSBack 1.21 Dialing Templates    " + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 41
  886.         FWrite 1, 0, 1
  887.         FWrite 1, 0, 1
  888.         For INTEGER004 = 0 To 5
  889.             FWrite 1, 0, 1
  890.         Next
  891.         FWrite 1, "SAMPLE", 10
  892.         FWrite 1, 0, 1
  893.         FWrite 1, 0, 1
  894.         FWrite 1, 0, 1
  895.         FWrite 1, Space(6), 6
  896.         FClose 1
  897.         PrintLn "@X0ANew dialing templates file successfully created..."
  898.     Endif
  899.     PrintLn "@X0FDialing templates file successfully packed!"
  900.     Log "Dialing templates file successfully packed!", 0
  901.     KbdChkOn
  902.     Return
  903.     :LABEL021
  904.     BOOLEAN002 = 0
  905.     BOOLEAN001 = 1
  906.     INTEGER001 = 1
  907.     STRING002 = PPEPath() + "EDSDIAL.PLT"
  908.     INTEGER003 = FileInf(STRING002, 4)
  909.     If (Exist(STRING002)) Goto LABEL022
  910.     PrintLn 
  911.     PrintLn "@X0CCreating " + STRING002
  912.     FCreate 3, STRING002, 2, 2
  913.     If (Ferr(3)) Then
  914.         BOOLEAN003 = 1
  915.     Else
  916.         BOOLEAN003 = 0
  917.     Endif
  918.     If (BOOLEAN003) Then
  919.         PrintLn 
  920.         PrintLn "@X0CSorry, the @X0F" + STRING002 + " X0Cfile is currently inaccessible..."
  921.         FClose 3
  922.         Return
  923.     Endif
  924.     FSeek 3, 0, 0
  925.     FWrite 3, " EDSBack 1.21 Dialing Templates    " + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 41
  926.     FWrite 3, 0, 1
  927.     FWrite 3, 0, 1
  928.     FWrite 3, 0, 1
  929.     FWrite 3, 0, 1
  930.     FWrite 3, 0, 1
  931.     FWrite 3, 0, 1
  932.     FWrite 3, 0, 1
  933.     FWrite 3, 0, 1
  934.     FWrite 3, "SAMPLE", 10
  935.     FWrite 3, 0, 1
  936.     FWrite 3, 0, 1
  937.     FWrite 3, 0, 2
  938.     FWrite 3, Space(6), 6
  939.     INTEGER003 = 69
  940.     Goto LABEL023
  941.     :LABEL022
  942.     FOpen 3, STRING002, 2, 2
  943.     If (Ferr(3)) Then
  944.         BOOLEAN003 = 1
  945.     Else
  946.         BOOLEAN003 = 0
  947.     Endif
  948.     If (BOOLEAN003) Then
  949.         PrintLn 
  950.         PrintLn "@X0CSorry, the @X0F" + STRING002 + " X0Cfile is currently inaccessible..."
  951.         FClose 3
  952.         Return
  953.     Endif
  954.     :LABEL023
  955.     If (BOOLEAN002) Goto LABEL024
  956.     If (BOOLEAN001) Then
  957.         FSeek 3, 41 + INTEGER001 * 28 - 28, 0
  958.         FRead 3, BOOLEAN004, 1
  959.         FRead 3, BOOLEAN006, 1
  960.         For INTEGER004 = 0 To 5
  961.             FRead 3, TBYTE002(INTEGER004), 1
  962.         Next
  963.         FRead 3, STRING007, 10
  964.         FRead 3, BYTE003, 1
  965.         FRead 3, BYTE004, 1
  966.         FRead 3, WORD001, 2
  967.         BOOLEAN001 = 0
  968.     Endif
  969.     PrintLn 
  970.     INTEGER002 = (INTEGER003 - 41) / 28
  971.     PrintLn Space(26) + "@X0A(@X0FDialing Templates Listing@X0A)"
  972.     PrintLn 
  973.     PrintLn "    @X0BRecord #@X0E" + String(INTEGER001) + "@X0B of @X0E" + String(INTEGER002)
  974.     Print "    @X0F(@X09D@X0F)eleted : @X0C"
  975.     If (BOOLEAN004) Then
  976.         PrintLn "Yes"
  977.     Else
  978.         PrintLn "No "
  979.     Endif
  980.     PrintLn 
  981.     PrintLn "    @X0F(@X09N@X0F)ame of template                : @X0E" + STRING007
  982.     Print "    @X0F(@X09L@X0F)ogoff user after callback      : @X0E"
  983.     If (BOOLEAN006) Then
  984.         PrintLn "Yes"
  985.     Else
  986.         PrintLn "No "
  987.     Endif
  988.     PrintLn "    @X0F(@X09S@X0F)ecurity level to upgrade to    : @X0E" + String(BYTE003)
  989.     PrintLn "    @X0F(@X09E@X0F)xpired Sec. Level to upgrade to: @X0E" + String(BYTE004)
  990.     PrintLn "    @X0F(@X09#@X0F) of days till expiration       : @X0E" + String(WORD001)
  991.     PrintLn "    @X0F(@X09T@X0F)emplate to use when dialing    : @X0E(See Below)"
  992.     STRING001 = ""
  993.     For INTEGER004 = 0 To 5
  994.         If (TBYTE002(INTEGER004) == 1) Then
  995.             STRING001 = STRING001 + "NUMPREFIX + "
  996.             Continue
  997.         Endif
  998.         If (TBYTE002(INTEGER004) == 2) Then
  999.             STRING001 = STRING001 + "LDACCESS + "
  1000.             Continue
  1001.         Endif
  1002.         If (TBYTE002(INTEGER004) == 3) Then
  1003.             STRING001 = STRING001 + "AREACODE/COUNTRYCODE + "
  1004.             Continue
  1005.         Endif
  1006.         If (TBYTE002(INTEGER004) == 4) Then
  1007.             STRING001 = STRING001 + "PREFIX/CITYCODE + "
  1008.             Continue
  1009.         Endif
  1010.         If (TBYTE002(INTEGER004) == 5) Then
  1011.             STRING001 = STRING001 + "NUMBER + "
  1012.             Continue
  1013.         Endif
  1014.         If (TBYTE002(INTEGER004) == 6) Then
  1015.             STRING001 = STRING001 + "NUMSUFFIX + "
  1016.         Endif
  1017.     Next
  1018.     If (STRING001 == "") STRING001 = "TEMPLATE HAS NOT BEEN DEFINED"
  1019.     STRING001 = Trim(Trim(STRING001, " "), "+")
  1020.     PrintLn "    " + STRING001
  1021.     PrintLn 
  1022.     PrintLn "    @X0F(@X09+@X0F) @X0BAdvance 1 record  @X0F(@X09-@X0F) @X0BRetard 1 record"
  1023.     PrintLn "    @X0F(@X09J@X0F)@X0Bump to record      @X0F(@X09A@X0F)@X0Bdd a record"
  1024.     PrintLn "    @X0F(@X09Q@X0F)@X0Buit"
  1025.     PrintLn 
  1026.     InputStr "(H)elp, Enter command", STRING005, 10, 1, "Dd+-JjAaQqRrLlTtNn#EeSsHh", 2 + 4
  1027.     Newline
  1028.     STRING005 = Upper(STRING005)
  1029.     Select Case (STRING005)
  1030.         Case "Q", "R"
  1031.             FClose 3
  1032.             BOOLEAN002 = 1
  1033.         Case "H"
  1034.             Print "@PON@"
  1035.             DispFile PPEPath() + "EDSAD", 1 + 4
  1036.             Print "@POFF@"
  1037.             Cls
  1038.         Case "+"
  1039.             If (INTEGER001 >= INTEGER002) Then
  1040.                 INTEGER001 = 1
  1041.             Else
  1042.                 Inc INTEGER001
  1043.             Endif
  1044.             BOOLEAN001 = 1
  1045.         Case "-"
  1046.             If (INTEGER001 <= 1) Then
  1047.                 INTEGER001 = INTEGER002
  1048.             Else
  1049.                 Dec INTEGER001
  1050.             Endif
  1051.             BOOLEAN001 = 1
  1052.         Case "J"
  1053.             INTEGER004 = INTEGER002
  1054.             InputInt "Enter record # to jump to", INTEGER004, 10
  1055.             If (INTEGER004 > INTEGER002) Then
  1056.                 INTEGER001 = INTEGER002
  1057.             ElseIf (INTEGER004 < 1) Then
  1058.                 INTEGER001 = 1
  1059.             Else
  1060.                 INTEGER001 = INTEGER004
  1061.             Endif
  1062.             BOOLEAN001 = 1
  1063.         Case "D"
  1064.             FSeek 3, 41 + INTEGER001 * 28 - 28, 0
  1065.             If (BOOLEAN004) Then
  1066.                 STRING001 = YesChar()
  1067.             Else
  1068.                 STRING001 = NoChar()
  1069.             Endif
  1070.             InputYN "Delete record", STRING001, 10
  1071.             Newline
  1072.             If (Upper(STRING001) == YesChar()) Then
  1073.                 BOOLEAN004 = 1
  1074.             Else
  1075.                 BOOLEAN004 = 0
  1076.             Endif
  1077.             FWrite 3, BOOLEAN004, 1
  1078.             BOOLEAN001 = 1
  1079.         Case "#"
  1080.             InputInt "Number of days from callback till user expires (0=NO EXPIRATION DATE)", WORD001, 10
  1081.             Newline
  1082.             FSeek 3, 41 + INTEGER001 * 28 - 8, 0
  1083.             FWrite 3, WORD001, 2
  1084.             BOOLEAN001 = 1
  1085.         Case "S"
  1086.             InputInt "User's new security level after callback with this template", BYTE003, 10
  1087.             Newline
  1088.             FSeek 3, 41 + INTEGER001 * 28 - 10, 0
  1089.             FWrite 3, BYTE003, 1
  1090.             BOOLEAN001 = 1
  1091.         Case "E"
  1092.             InputInt "User's new expired security level after callback with this template", BYTE004, 10
  1093.             Newline
  1094.             FSeek 3, 41 + INTEGER001 * 28 - 9, 0
  1095.             FWrite 3, BYTE004, 1
  1096.             BOOLEAN001 = 1
  1097.         Case "A"
  1098.             FSeek 3, 0, 2
  1099.             InputText "Template name", STRING007, 15, 10
  1100.             STRING007 = Upper(Trim(STRING007, " "))
  1101.             Newline
  1102.             If (BOOLEAN006) Then
  1103.                 STRING001 = YesChar()
  1104.             Else
  1105.                 STRING001 = NoChar()
  1106.             Endif
  1107.             InputYN "Logoff user after dialing with this template", STRING001, 10
  1108.             Newline
  1109.             If (Upper(STRING001) == YesChar()) Then
  1110.                 BOOLEAN006 = 1
  1111.             Else
  1112.                 BOOLEAN006 = 0
  1113.             Endif
  1114.             InputInt "Number of days from callback till user expires (0=NO EXPIRATION DATE)", WORD001, 10
  1115.             Newline
  1116.             InputInt "User's new security level after callback with this template", BYTE003, 10
  1117.             Newline
  1118.             InputInt "User's new expired security level after callback with this template", BYTE004, 10
  1119.             Newline
  1120.             Gosub LABEL027
  1121.             PrintLn "@X0FCreating record..."
  1122.             FWrite 3, 0, 1
  1123.             FWrite 3, BOOLEAN006, 1
  1124.             For INTEGER004 = 0 To 5
  1125.                 FWrite 3, TBYTE002(INTEGER004), 1
  1126.             Next
  1127.             FWrite 3, STRING007, 10
  1128.             FWrite 3, BYTE003, 1
  1129.             FWrite 3, BYTE004, 1
  1130.             FWrite 3, WORD001, 2
  1131.             FWrite 3, Space(6), 6
  1132.             INTEGER002 = INTEGER002 + 1
  1133.             INTEGER003 = INTEGER003 + 28
  1134.             INTEGER001 = INTEGER002
  1135.             BOOLEAN001 = 1
  1136.         Case "L"
  1137.             If (BOOLEAN006) Then
  1138.                 STRING001 = YesChar()
  1139.             Else
  1140.                 STRING001 = NoChar()
  1141.             Endif
  1142.             InputYN "Logoff user after dialing with this template", STRING001, 10
  1143.             Newline
  1144.             If (Upper(STRING001) == YesChar()) Then
  1145.                 BOOLEAN006 = 1
  1146.             Else
  1147.                 BOOLEAN006 = 0
  1148.             Endif
  1149.             FSeek 3, 41 + INTEGER001 * 28 - 27, 0
  1150.             FWrite 3, BOOLEAN006, 1
  1151.             BOOLEAN001 = 1
  1152.         Case "T"
  1153.             Gosub LABEL027
  1154.             FSeek 3, 41 + INTEGER001 * 28 - 26, 0
  1155.             For INTEGER004 = 0 To 5
  1156.                 FWrite 3, TBYTE002(INTEGER004), 1
  1157.             Next
  1158.             BOOLEAN001 = 1
  1159.         Case "N"
  1160.             InputText "Name of template", STRING007, 10, 10
  1161.             STRING007 = Upper(Trim(STRING007, " "))
  1162.             FSeek 3, 41 + INTEGER001 * 28 - 20, 0
  1163.             FWrite 3, STRING007, 10
  1164.             BOOLEAN001 = 1
  1165.     End Select
  1166.     Goto LABEL023
  1167.     :LABEL024
  1168.     FClose 3
  1169.     Return
  1170.     :LABEL025
  1171.     Gosub LABEL028
  1172.     FSeek 2, 359, 0
  1173.     FRead 2, STRING002, 75
  1174.     FClose 2
  1175.     If (Exist(STRING002)) Goto LABEL026
  1176.     PrintLn 
  1177.     PrintLn "@X0C" + STRING002 + " does not exist!"
  1178.     Delay 9
  1179.     Return
  1180.     :LABEL026
  1181.     INTEGER003 = FileInf(STRING002, 4)
  1182.     INTEGER002 = (INTEGER003 - 41) / 29
  1183.     PrintLn 
  1184.     PrintLn "@X0F   File Size = " + String(INTEGER003) + " bytes   Number of Records = " + String(INTEGER002)
  1185.     KbdChkOff
  1186.     FOpen 4, STRING002, 0, 0
  1187.     If (Ferr(4)) Then
  1188.         BOOLEAN003 = 1
  1189.     Else
  1190.         BOOLEAN003 = 0
  1191.     Endif
  1192.     If (BOOLEAN003) Then
  1193.         PrintLn 
  1194.         PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  1195.         FClose 4
  1196.         Return
  1197.     Endif
  1198.     FCreate 5, PPEPath() + "EDSALLOW.IDX", 1, 2
  1199.     If (Ferr(5)) Then
  1200.         BOOLEAN003 = 1
  1201.     Else
  1202.         BOOLEAN003 = 0
  1203.     Endif
  1204.     If (BOOLEAN003) Then
  1205.         PrintLn 
  1206.         PrintLn "@X0CSorry, the @X0FEDSALLOW.IDX @X0Cfile is currently inaccessible..."
  1207.         FClose 5
  1208.         FClose 4
  1209.         Return
  1210.     Endif
  1211.     BOOLEAN002 = 0
  1212.     FSeek 4, 41, 0
  1213.     FWrite 5, " EDSBack 1.21 Allowed # Index File " + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 41
  1214.     PrintLn 
  1215.     Print "@X0BGenerating Allowed # Calling Index...    "
  1216.     If (OnLocal()) Then
  1217.         PrintLn 
  1218.         PrintLn 
  1219.         Print "@X0F0% @X07░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ @X0F100%"
  1220.         BYTE001 = GetY()
  1221.     Endif
  1222.     INTEGER001 = 1
  1223.     While (INTEGER001 <= INTEGER002) Do
  1224.         BOOLEAN002 = 0
  1225.         BOOLEAN004 = 0
  1226.         BOOLEAN005 = 0
  1227.         STRING003 = Space(3)
  1228.         STRING004 = Space(4)
  1229.         STRING007 = Space(10)
  1230.         FRead 4, BOOLEAN004, 1
  1231.         FRead 4, BOOLEAN005, 1
  1232.         FRead 4, STRING003, 3
  1233.         FRead 4, STRING004, 4
  1234.         FSeek 4, 20, 1
  1235.         If (InStr(Upper(STRING003 + STRING004), "X")) Then
  1236.             INTEGER004 = 0
  1237.         Else
  1238.             INTEGER004 = S2I(STRING003, 10) + S2I(STRING004, 10)
  1239.         Endif
  1240.         FWrite 5, INTEGER004, 4
  1241.         FWrite 5, INTEGER001, 4
  1242.         If (OnLocal()) Then
  1243.             Gosub LABEL031
  1244.         Else
  1245.             Gosub LABEL032
  1246.         Endif
  1247.         Inc INTEGER001
  1248.     EndWhile
  1249.     Color 7
  1250.     FClose 4
  1251.     FClose 5
  1252.     PrintLn 
  1253.     PrintLn "@X0FAllowed # Calling Index successfully created!"
  1254.     Log "Allowed # Calling Index created!", 0
  1255.     KbdChkOn
  1256.     Return
  1257.     :LABEL027
  1258.     PrintLn 
  1259.     STRING001 = "R"
  1260.     InputStr "@X0F(@X0ED@X0F)@X0Besign your own template or use a @X0F(@X0ER@X0F)@X0Beady-made", STRING001, 11, 1, "DdRr", 2 + 4 + 256
  1261.     STRING001 = Upper(STRING001)
  1262.     If (STRING001 == "R") Then
  1263.         PrintLn 
  1264.         PrintLn 
  1265.         PrintLn "@X07     These ready-made templates are provided for a Quick-Setup of EDSBack."
  1266.         PrintLn "If you have been using EDSBack for awhile and would like to create new "
  1267.         PrintLn "templates, or simply modify your templates, then please read the EDSBack"
  1268.         PrintLn "documentation that deals with (D)esigning your own templates."
  1269.         PrintLn 
  1270.         PrintLn 
  1271.         PrintLn 
  1272.         PrintLn "@X0FThe following is a list of ready-made templates:"
  1273.         PrintLn 
  1274.         PrintLn "@X0E(@X0AL@X0E)@X0Focal         @X08--@X0C Template for dialing local numbers"
  1275.         PrintLn "@X0FLong @X0E(@X0AD@X0E)@X0Fistance @X08--@X0C Template for dialing long distance numbers"
  1276.         PrintLn "@X0E(@X0AT@X0E)@X0Foll          @X08--@X0C Template for dialing toll numbers"
  1277.         PrintLn 
  1278.         PrintLn 
  1279.         STRING001 = ""
  1280.         InputStr "Template to use", STRING001, 10, 1, "LlDdTt", 2 + 4 + 256
  1281.         STRING001 = Trim(Upper(STRING001), " ")
  1282.         If (STRING001 == "") Return
  1283.         PrintLn 
  1284.         Select Case (STRING001)
  1285.             Case "L"
  1286.                 PrintLn "@X0FTemplate is using LOCAL ready-made parameters..."
  1287.                 TBYTE002(0) = 1
  1288.                 TBYTE002(1) = 4
  1289.                 TBYTE002(2) = 5
  1290.                 TBYTE002(3) = 6
  1291.                 TBYTE002(4) = 0
  1292.                 TBYTE002(5) = 0
  1293.             Case "D"
  1294.                 PrintLn "@X0FTemplate is using LONGDIST ready-made parameters..."
  1295.                 TBYTE002(0) = 1
  1296.                 TBYTE002(1) = 2
  1297.                 TBYTE002(2) = 3
  1298.                 TBYTE002(3) = 4
  1299.                 TBYTE002(4) = 5
  1300.                 TBYTE002(5) = 6
  1301.             Case "T"
  1302.                 PrintLn "@X0FTemplate is using TOLL ready-made parameters..."
  1303.                 TBYTE002(0) = 1
  1304.                 TBYTE002(1) = 2
  1305.                 TBYTE002(2) = 4
  1306.                 TBYTE002(3) = 5
  1307.                 TBYTE002(4) = 6
  1308.                 TBYTE002(5) = 0
  1309.         End Select
  1310.     Else
  1311.         Cls
  1312.         PrintLn 
  1313.         PrintLn "@X07You will now be asked to tell EDSBack how to dial a number when using this"
  1314.         PrintLn "template.  EDSBack will dial up to 6 different fields.  Each field may contain"
  1315.         PrintLn "a number for EDSBack to dial, or a setting of NONE telling EDSBack to dial "
  1316.         PrintLn "to dial nothing for that field.  For example, for a local number, you would "
  1317.         PrintLn "tell EDSBack to dial the PREFIX/CITY CODE for field #1, the NUMBER for field"
  1318.         PrintLn "#2, and NONE for fields 3 - 6."
  1319.         PrintLn 
  1320.         PrintLn 
  1321.         PrintLn "@X0BThe next 6 fields contain the parameters for the dialing template:"
  1322.         PrintLn 
  1323.         For INTEGER004 = 0 To 5
  1324.             PrintLn "@X0FField #" + String(INTEGER004 + 1) + " of 6"
  1325.             PrintLn 
  1326.             PrintLn "@X0A(@X0C0@X0A)@X0B None"
  1327.             PrintLn "@X0A(@X0C1@X0A)@X0B NUMPREFIX (as defined in config settings)"
  1328.             PrintLn "@X0A(@X0C2@X0A)@X0B LONG DISTANCE ACCESS CODE"
  1329.             PrintLn "@X0A(@X0C3@X0A)@X0B AREACODE/COUNTRYCODE"
  1330.             PrintLn "@X0A(@X0C4@X0A)@X0B PREFIX/CITYCODE"
  1331.             PrintLn "@X0A(@X0C5@X0A)@X0B NUMBER"
  1332.             PrintLn "@X0A(@X0C6@X0A)@X0B NUMSUFFIX (as defined in config settings)"
  1333.             PrintLn 
  1334.             STRING001 = I2S(TBYTE002(INTEGER004), 10)
  1335.             InputStr "Number to dial for field #" + String(INTEGER004 + 1), STRING001, 14, 1, "0123456", 2 + 4 + 256
  1336.             TBYTE002(INTEGER004) = S2I(STRING001, 10)
  1337.             PrintLn 
  1338.         Next
  1339.     Endif
  1340.     Return
  1341.     :LABEL028
  1342.     STRING001 = PPEPath() + "EDSBACK.XXX"
  1343.     If (Exist(STRING001)) Then
  1344.         FOpen 2, STRING001, 0, 0
  1345.     Else
  1346.         PrintLn 
  1347.         PrintLn "@X0FPath & filename to EDSBack config file @X0E(Enter Below)"
  1348.         InputStr "", STRING001, 12, 75, Mask_Path() + Mask_File(), 2 + 4
  1349.         If (Exist(STRING001)) Goto LABEL029
  1350.         PrintLn 
  1351.         PrintLn "@X0C" + STRING001 + " DOES NOT EXIST!   @X0AReturning to EDSUtil Main..."
  1352.         Goto LABEL034
  1353.         Goto LABEL030
  1354.         :LABEL029
  1355.         FOpen 2, STRING001, 0, 0
  1356.     Endif
  1357.     :LABEL030
  1358.     If (Ferr(2)) Then
  1359.         BOOLEAN003 = 1
  1360.     Else
  1361.         BOOLEAN003 = 0
  1362.     Endif
  1363.     If (BOOLEAN003) Then
  1364.         PrintLn 
  1365.         PrintLn "@X0CSorry, the " + STRING001 + " @X0Cfile is currently inaccessible..."
  1366.         FClose 2
  1367.         Return
  1368.     Endif
  1369.     Return
  1370.     :LABEL031
  1371.     If (INTEGER001 == 1) BYTE007 = 0
  1372.     If ((INTEGER001 <> 0) && (INTEGER002 <> 0)) Then
  1373.         REAL002 = ToReal(INTEGER001) / ToReal(INTEGER002)
  1374.         REAL003 = FmtReal(ToReal(35) * REAL002, 1, 0)
  1375.         BYTE006 = ToByte(REAL003) - BYTE007
  1376.         If (BYTE006 <> BYTE007) Then
  1377.             Color 63
  1378.             AnsiPos 4 + BYTE007, BYTE001
  1379.             For BYTE007 = 1 To BYTE006
  1380.                 Print "░"
  1381.             Next
  1382.             BYTE007 = ToByte(REAL003)
  1383.             REAL002 = FmtReal(REAL002 * 100, 1, 0)
  1384.             BYTE006 = (43 - Len(String(REAL002) + "%")) / 2
  1385.             Color 11
  1386.             REAL003 = ToReal(BYTE001) - 1
  1387.             AnsiPos BYTE006, ToByte(REAL003)
  1388.             Print String(REAL002) + "%"
  1389.             AnsiPos 45, BYTE001
  1390.         Endif
  1391.     Endif
  1392.     Return
  1393.     :LABEL032
  1394.     If ((INTEGER001 <> 0) && (INTEGER002 <> 0)) Then
  1395.         If (INTEGER001 == 1) Then
  1396.             BYTE005 = 0
  1397.             Goto LABEL033
  1398.         Endif
  1399.         BYTE005 = REAL001
  1400.         :LABEL033
  1401.         REAL001 = ToReal(INTEGER001) / ToReal(INTEGER002)
  1402.         REAL001 = FmtReal(REAL001 * 100, 1, 0)
  1403.         If (BYTE005 <> REAL001) Then
  1404.             Backup Len(String(BYTE005) + "%")
  1405.             Print String(REAL001) + "%"
  1406.         Endif
  1407.     Endif
  1408.     Return
  1409.     :LABEL034
  1410.     End
  1411.  
  1412. ;------------------------------------------------------------------------------
  1413. ;
  1414. ; Usage report (before postprocessing)
  1415. ;
  1416. ; ■ Statements used :
  1417. ;
  1418. ;    1       End
  1419. ;    8       Cls
  1420. ;    5       Color 
  1421. ;    300     Goto 
  1422. ;    270     Let 
  1423. ;    20      Print 
  1424. ;    239     PrintLn 
  1425. ;    172     If 
  1426. ;    2       DispFile 
  1427. ;    10      FCreate 
  1428. ;    11      FOpen 
  1429. ;    2       FAppend 
  1430. ;    54      FClose 
  1431. ;    1       FGet 
  1432. ;    9       FPutLn 
  1433. ;    4       Delete 
  1434. ;    4       Log 
  1435. ;    17      InputStr 
  1436. ;    6       InputYN 
  1437. ;    8       InputInt 
  1438. ;    26      Gosub 
  1439. ;    38      Return
  1440. ;    8       Delay 
  1441. ;    7       Inc 
  1442. ;    2       Dec 
  1443. ;    24      Newline
  1444. ;    1       GetToken 
  1445. ;    5       InputText 
  1446. ;    3       KbdChkOn
  1447. ;    3       KbdChkOff
  1448. ;    3       AnsiPos 
  1449. ;    2       Backup 
  1450. ;    4       Rename 
  1451. ;    40      FSeek 
  1452. ;    36      FRead 
  1453. ;    94      FWrite 
  1454. ;
  1455. ;
  1456. ; ■ Functions used :
  1457. ;
  1458. ;    19      *
  1459. ;    11      /
  1460. ;    251     +
  1461. ;    27      -
  1462. ;    60      ==
  1463. ;    8       <>
  1464. ;    13      <
  1465. ;    17      <=
  1466. ;    2       >
  1467. ;    20      >=
  1468. ;    165     !
  1469. ;    20      &&
  1470. ;    11      ||
  1471. ;    3       Len(
  1472. ;    24      Upper()
  1473. ;    3       Mid()
  1474. ;    1       Left()
  1475. ;    25      Space()
  1476. ;    21      Ferr()
  1477. ;    36      Chr()
  1478. ;    4       InStr()
  1479. ;    10      Trim()
  1480. ;    1       Date()
  1481. ;    1       Time()
  1482. ;    5       NoChar()
  1483. ;    12      YesChar()
  1484. ;    16      Strip()
  1485. ;    33      String()
  1486. ;    8       Mask_Num()
  1487. ;    4       Mask_File()
  1488. ;    4       Mask_Path()
  1489. ;    18      PPEPath()
  1490. ;    10      PcbNode()
  1491. ;    6       OnLocal()
  1492. ;    13      Exist()
  1493. ;    1       I2S()
  1494. ;    9       S2I()
  1495. ;    3       GetY()
  1496. ;    8       FileInf()
  1497. ;    1       TokCount()
  1498. ;    3       ToByte()
  1499. ;    6       ToReal()
  1500. ;    3       FmtReal()
  1501. ;
  1502. ;------------------------------------------------------------------------------
  1503. ;
  1504. ; Analysis flags : No flag
  1505. ;
  1506. ;------------------------------------------------------------------------------
  1507. ;
  1508. ; Postprocessing report
  1509. ;
  1510. ;    9       For/Next
  1511. ;    4       While/EndWhile
  1512. ;    103     If/Then or If/Then/Else
  1513. ;    4       Select Case
  1514. ;
  1515. ;------------------------------------------------------------------------------
  1516. ;                 AEGiS Corp - Break the routines, code against the machines!
  1517. ;------------------------------------------------------------------------------
  1518.